home *** CD-ROM | disk | FTP | other *** search
- Path: giskard.demon.co.uk!dale
- From: dale@giskard.demon.co.uk (Dale Shuttleworth)
- Newsgroups: comp.dcom.modems
- Subject: Re: UART 16650
- Date: Sun, 3 Mar 1996 00:12:36 GMT
- Organization: Dale's home Linux box.
- Message-ID: <Dno0L0.MD@giskard.demon.co.uk>
- References: <4gf6b3$v5d@mips.pfalz.de> <4gkaj5$i5f@hg.oro.net> <DnAnB1.Mr@giskard.demon.co.uk> <DnMFIn.2Gv@bokonon.ussinc.com>
- X-NNTP-Posting-Host: giskard.demon.co.uk
- X-Newsreader: TIN [UNIX 1.3 950824BETA PL0]
-
- Stephen M. Dunn (stephen@bokonon.ussinc.com) wrote:
- : In article <DnAnB1.Mr@giskard.demon.co.uk> dale@giskard.demon.co.uk
- : (Dale Shuttleworth) writes:
- : $??? Large receive buffer sizes are primarily there to deal with
- : $interrupt latency causing characters to to dropped. Since it is
- : $impossible to drop characters on transmit you don't really need any
- : $buffering at all.
- :
- : Large receive buffers can also reduce CPU load. An interrupt,
- : in many cases, is relatively expensive in terms of CPU time (particularly
- : in an OS which has to do a context switch in order to run an interrupt
- : service routine). If you can move more than one character during
- : that one call to the ISR, you're probably using CPU cycles more
- : efficiently as well as reducing the chance of data loss due to
- : high latency.
-
- : And yes, you don't _need_ transmit buffers - but that certainly
- : doesn't mean they can't be of benefit.
-
- I don't disagree that large buffers can reduce CPU load. The original
- post suggested that they improved throughput and my post was largely
- intended to respond to that. I would note however that if the cost
- of your large buffer more than insignificant then it is probably more
- cost effective to go for a more powerful CPU instead (certianly in the
- Intel world).
-
- I would also note that the CPU load of serial comms is trivial and if
- you are really that concerned, you can probably afford a separate
- comms server anyway....
-
- : $If you have a really loaded system doing polled transmission then I
- : $suppose big transmit buffers are useful, otherwise they're a waste of
- : $time. This is especially true since we usually transmit data to the
- : $modem at far higher rates rather than it can actually send it.
- :
- : A really loaded system doing interrupt-drive transmission would
- : also benefit, in the same case in which it benefits from
- : receive buffers - if the interrupt latency may be so high that
- : the interrupt can't be serviced quickly. Without buffers, the
- : system would stop transmitting until such time as the ISR
- : can stuff another character into the UART. If, on the other
- : hand, I can load up the UART with a number of characters at once,
- : I know they'll all transmit at full speed.
-
- If the interrupt cannot be serviced quickly then it doesn't really
- matter. Since we are feeding the modem at well over twice the rate
- at which it will transmit the data (under most sensible conditions),
- you have to have *really* poor interrupt performance for throughput
- to be affected.
-
- Dale.
-
- --
- ******************************************************************************
- * Dale Shuttleworth *
- * Email: dale@giskard.demon.co.uk *
- ******************************************************************************
-